package br.filipov.values.p;

import lombok.Getter;

/**
 * @author Marcelo Aparecido Filipov
 * @since 2014
 */
public enum PaisesValues {

	ABECASIA(358, "Abecásia"),
	AFEGANISTAO(4, "Afeganistão"),
	AFRICA_DO_SUL(192, "África do Sul"),
	ALBANIA(7, "Albânia"),
	ALEMANHA(196, "Alemanha"),
	ANDORRA(2, "Andorra"),
	ANGOLA(9, "Angola"),
	ANGUILLA(6, "Anguilla"),
	ANTIGUA_E_BARBUDA(5, "Antigua e Barbuda"),
	ANTILHAS_HOLANDESAS(199, "Antilhas Holandesas"),
	ARABIA_SAUDITA(155, "Arábia Saudita"),
	ARGELIA(49, "Argélia"),
	ARGENTINA(10, "ARGENTINA"),
	ARMENIA(8, "ARMENIA"),
	ARUBA(200, "ARUBA"),
	AUSTRALIA(12, "AUSTRALIA"),
	BAHAMAS(26, "BAHAMAS"),
	BAHREIN(20, "BAHREIN"),
	BANGLADESH(16, "BANGLADESH"),
	BARBADOS(15, "BARBADOS"),
	BELARUS(29, "BELARUS"),
	BELGICA(17, "BELGICA"),
	BELIZE(30, "BELIZE"),
	BENIN(22, "BENIN"),
	BERMUDAS(23, "BERMUDAS"),
	BOLIVIA(25, "BOLIVIA"),
	BOSNIA_HERZEGOVINA(14, "BOSNIA-HERZEGOVINA"),
	BOTSUANA(28, "BOTSUANA"),
	BRASIL(1, "BRASIL"),
	BRUNEI(24, "BRUNEI"),
	BULGARIA(19, "BULGARIA"),
	BURKINA_FASO(18, "BURKINA FASO"),
	BURUNDI(21, "BURUNDI"),
	BUTAO(27, "BUTAO"),
	CABO_VERDE(43, "CABO VERDE"),
	CAMAROES(202, "CAMAROES"),
	CAMBOJA(201, "CAMBOJA"),
	CANADA(31, "CANADA"),
	CANARIAS_ILHAS(235, "CANARIAS, ILHAS"),
	CATAR(150, "CATAR"),
	CAYMAN_ILHAS(197, "CAYMAN, ILHAS"),
	CAZAQUISTAO(99, "CAZAQUISTAO"),
	CHADE(170, "CHADE"),
	CHILE(38, "CHILE"),
	CHINA(39, "CHINA"),
	CHIPRE(44, "CHIPRE"),
	CHRISTMAS_ILHA(218, "CHRISTMAS, ILHA"),
	CINGAPURA(160, "CINGAPURA"),
	COCOS_ILHAS_KEELING(32, "COCOS, ILHAS(KEELING"),
	COLOMBIA(40, "COLOMBIA"),
	COMORES(95, "COMORES"),
	CONGO(34, "CONGO"),
	COOK_ILHAS(37, "COOK, ILHAS"),
	COREIA_DO_NORTE(96, "COREIA DO NORTE"),
	COREIA_DO_SUL(97, "COREIA DO SUL"),
	COSTA_DO_MARFIM(36, "COSTA DO MARFIM"),
	COSTA_RICA(41, "COSTA RICA"),
	CROACIA(204, "CROACIA"),
	CUBA(42, "CUBA"),
	DINAMARCA(46, "DINAMARCA"),
	DJIBUTI(45, "DJIBUTI"),
	DOMINICA(47, "DOMINICA"),
	EGITO(51, "EGITO"),
	EL_SALVADOR(167, "EL SALVADOR"),
	EMIRADOS_ARABES_UNID(3, "EMIRADOS ARABES UNID"),
	EQUADOR(50, "EQUADOR"),
	ERITREIA(246, "ERITREIA"),
	ESLOVAQUIA(206, "ESLOVAQUIA"),
	ESLOVENIA(205, "ESLOVENIA"),
	ESPANHA(53, "ESPANHA"),
	ESTADOS_UNIDOS(182, "ESTADOS UNIDOS"),
	ESTONIA(207, "ESTONIA"),
	ETIOPIA(54, "ETIOPIA"),
	FALKLAND_ILHAS_MALV(58, "FALKLAND, ILHAS(MALV"),
	FEROE_ILHAS(208, "FEROE, ILHAS"),
	FIJI(57, "FIJI"),
	FILIPINAS(209, "FILIPINAS"),
	FINLANDIA(56, "FINLANDIA"),
	FRANCA(60, "FRANCA"),
	GABAO(61, "GABAO"),
	GAMBIA(69, "GAMBIA"),
	GANA(66, "GANA"),
	GEORGIA(64, "GEORGIA"),
	GIBRALTAR(67, "GIBRALTAR"),
	GRANADA(63, "GRANADA"),
	GRECIA(73, "GRECIA"),
	GROENLANDIA(68, "GROENLANDIA"),
	GUADALUPE(71, "GUADALUPE"),
	GUAM(75, "GUAM"),
	GUATEMALA(74, "GUATEMALA"),
	GUERNSEY_ILHAS_DO_C(65, "GUERNSEY, ILHAS DO C"),
	GUIANA(76, "GUIANA"),
	GUIANA_FRANCESA(210, "GUIANA FRANCESA"),
	GUINE(70, "GUINE"),
	GUINE_EQUATORIAL(72, "GUINE EQUATORIAL"),
	GUINE_BISSAU(211, "GUINE-BISSAU"),
	HAITI(79, "HAITI"),
	HOLANDA(133, "HOLANDA"),
	HONDURAS(78, "HONDURAS"),
	HONG_KONG(77, "HONG KONG"),
	HUNGRIA(80, "HUNGRIA"),
	IEMEN(190, "IEMEN"),
	INDIA(84, "INDIA"),
	INDONESIA(81, "INDONESIA"),
	IRA(212, "IRA"),
	IRAQUE(86, "IRAQUE"),
	IRLANDA(82, "IRLANDA"),
	ISLANDIA(87, "ISLANDIA"),
	ISRAEL(83, "ISRAEL"),
	ITALIA(88, "ITALIA"),
	JAMAICA(90, "JAMAICA"),
	JAPAO(92, "JAPAO"),
	JERSEY_ILHAS_DO_CAN(89, "JERSEY, ILHAS DO CAN"),
	JOHNSTON_ILHAS(233, "JOHNSTON, ILHAS"),
	JORDANIA(91, "JORDANIA"),
	KIRIBATI(94, "KIRIBATI"),
	KUAITE(98, "KUAITE"),
	LAOS(213, "LAOS"),
	LESOTO(105, "LESOTO"),
	LETONIA(237, "LETONIA"),
	LIBANO(100, "LIBANO"),
	LIBERIA(104, "LIBERIA"),
	LIBIA(214, "LIBIA"),
	LIECHTENSTEIN(102, "LIECHTENSTEIN"),
	LITUANIA(106, "LITUANIA"),
	LUXEMBURGO(107, "LUXEMBURGO"),
	MACAU(117, "MACAU"),
	MACEDONIA(113, "MACEDONIA"),
	MADAGASCAR(111, "MADAGASCAR"),
	MADEIRA_ILHA(238, "MADEIRA, ILHA"),
	MALASIA(125, "MALASIA"),
	MALAUI(123, "MALAUI"),
	MALDIVAS(122, "MALDIVAS"),
	MALI(114, "MALI"),
	MALTA(120, "MALTA"),
	MAN_ILHA_DE(236, "MAN, ILHA DE"),
	MARIANAS_DO_NORTE_I(215, "MARIANAS DO NORTE, I"),
	MARROCOS(109, "MARROCOS"),
	MARSHALL_ILHAS(112, "MARSHALL, ILHAS"),
	MARTINICA(216, "MARTINICA"),
	MAURICIO(121, "MAURICIO"),
	MAURITANIA(118, "MAURITANIA"),
	MEXICO(124, "MEXICO"),
	MIANMA(115, "MIANMA"),
	MICRONESIA(59, "MICRONESIA"),
	MIDWAY_ILHAS(232, "MIDWAY, ILHAS"),
	MOCAMBIQUE(126, "MOCAMBIQUE"),
	MOLDOVA(217, "MOLDOVA"),
	MONACO(110, "MONACO"),
	MONGOLIA(116, "MONGOLIA"),
	MONTSERRAT(119, "MONTSERRAT"),
	NAMIBIA(127, "NAMIBIA"),
	NAURU(136, "NAURU"),
	NEPAL(135, "NEPAL"),
	NICARAGUA(132, "NICARAGUA"),
	NIGER(129, "NIGER"),
	NIGERIA(131, "NIGERIA"),
	NIUE(137, "NIUE"),
	NORFOLK_ILHA(130, "NORFOLK, ILHA"),
	NORUEGA(134, "NORUEGA"),
	NOVA_CALEDONIA(128, "NOVA CALEDONIA"),
	NOVA_ZELANDIA(138, "NOVA ZELANDIA"),
	OMA(139, "OMA"),
	ORGANIZACOES_INTERNA(243, "ORGANIZACOES INTERNA"),
	PACIFICO_ILHAS_DO(239, "PACIFICO, ILHAS DO"),
	PALAU(147, "PALAU"),
	PANAMA(140, "PANAMA"),
	PAPUA_NOVA_GUINE(219, "PAPUA NOVA GUINE"),
	PAQUISTAO(143, "PAQUISTAO"),
	PARAGUAI(148, "PARAGUAI"),
	PERU(141, "PERU"),
	PITCAIRN_ILHA(220, "PITCAIRN, ILHA"),
	POLINESIA_FRANCESA(142, "POLINESIA FRANCESA"),
	POLONIA(144, "POLONIA"),
	PORTO_RICO(145, "PORTO RICO"),
	PORTUGAL(146, "PORTUGAL"),
	QUENIA(93, "QUENIA"),
	QUIRGUISTAO(231, "QUIRGUISTAO"),
	REINO_UNIDO(62, "REINO UNIDO"),
	REP_DEMOCRATICA_DO_C(194, "REP.DEMOCRATICA DO C"),
	REPUBLICA_CENTRO_AFR(33, "REPUBLICA CENTRO-AFR"),
	REPUBLICA_DOMINICANA(48, "REPUBLICA DOMINICANA"),
	REPUBLICA_TCHECA(230, "REPUBLICA TCHECA"),
	REUNIAO(151, "REUNIAO"),
	ROMENIA(152, "ROMENIA"),
	RUANDA(154, "RUANDA"),
	RUSSIA(153, "RUSSIA"),
	SAARA_OCIDENTAL(52, "SAARA OCIDENTAL"),
	SALOMAO_ILHAS(156, "SALOMAO, ILHAS"),
	SAMOA(245, "SAMOA"),
	SAMOA_AMERICANA(222, "SAMOA AMERICANA"),
	SAN_MARINO(163, "SAN MARINO"),
	SANTA_HELENA(161, "SANTA HELENA"),
	SANTA_LUCIA(101, "SANTA LUCIA"),
	SAO_CRISTOVAO_E_NEVI(221, "SAO CRISTOVAO E NEVI"),
	SAO_PEDRO_E_MIQUELON(223, "SAO PEDRO E MIQUELON"),
	SAO_TOME_E_PRINCIPE(225, "SAO TOME E PRINCIPE"),
	SAO_VICENTE_E_GRANAD(224, "SAO VICENTE E GRANAD"),
	SENEGAL(164, "SENEGAL"),
	SERRA_LEOA(162, "SERRA LEOA"),
	SERVIA_E_MONTENEGRO(191, "SERVIA E MONTENEGRO"),
	SEYCHELLES(157, "SEYCHELLES"),
	SIRIA(198, "SIRIA"),
	SOMALIA(165, "SOMALIA"),
	SRI_LANKA(103, "SRI LANKA"),
	SUAZILANDIA(168, "SUAZILANDIA"),
	SUDAO(158, "SUDAO"),
	SUECIA(159, "SUECIA"),
	SUICA(35, "SUICA"),
	SURINAME(166, "SURINAME"),
	TADJIQUISTAO(226, "TADJIQUISTAO"),
	TAILANDIA(172, "TAILANDIA"),
	TAIWAN(203, "TAIWAN"),
	TANZANIA(179, "TANZANIA"),
	TERRIT_BRIT_OCEANO_I(85, "TERRIT.BRIT.OCEANO I"),
	TIMOR_LESTE(176, "TIMOR LESTE"),
	TOGO(171, "TOGO"),
	TONGA(175, "TONGA"),
	TOQUELAU_ILHAS(227, "TOQUELAU, ILHAS"),
	TRINIDAD_E_TOBAGO(228, "TRINIDAD E TOBAGO"),
	TUNISIA(174, "TUNISIA"),
	TURCAS_E_CAICOS(169, "TURCAS E CAICOS"),
	TURCOMENISTAO(173, "TURCOMENISTAO"),
	TURQUIA(177, "TURQUIA"),
	TUVALU(178, "TUVALU"),
	UCRANIA(180, "UCRANIA"),
	UGANDA(181, "UGANDA"),
	URUGUAI(183, "URUGUAI"),
	UZBEQUISTAO(184, "UZBEQUISTAO"),
	VANUATU(189, "VANUATU"),
	VATICANO(185, "VATICANO"),
	VENEZUELA(186, "VENEZUELA"),
	VIETNA(229, "VIETNA"),
	VIRGENS_ILHAS(187, "VIRGENS, ILHAS"),
	VIRGENS_ILHAS_EUA(188, "VIRGENS, ILHAS (EUA)"),
	WAKE_ILHA(247, "WAKE, ILHA"),
	ZAMBIA(193, "ZAMBIA"),
	ZIMBABUE(195, "ZIMBABUE"),
	ZONA_DO_CANAL_DO_PAN(149, "ZONA DO CANAL DO PAN");
	
	@Getter 
	private int id;
	@Getter 
	private String descricao;

	private PaisesValues(int id, String descricao) {
		this.id = id;
		this.descricao = descricao;
	}

	public static String getDescricaoById(short id) {
		String descricao = null;
		for (PaisesValues v : values()) {
			if (v.getId() == id) {
				descricao = v.getDescricao();
				break;
			}
		}
		return descricao;
	}

	public static String getDescricaoById(int id) {
		String descricao = null;
		for (PaisesValues v : values()) {
			if (v.getId() == id) {
				descricao = v.getDescricao();
				break;
			}
		}
		return descricao;
	}
	
	public static String getDescricaoById(long id) {
		String descricao = null;
		for (PaisesValues v : values()) {
			if (v.getId() == id) {
				descricao = v.getDescricao();
				break;
			}
		}
		return descricao;
	}
	
	public static PaisesValues parse(int id){
		PaisesValues retorno = null;
		for (PaisesValues v: values()){
			if (v.getId() == id) {
				retorno = v;
				break;
			}
		}
		return retorno;
	}

}
